package appBanco.server;

import java.io.FileNotFoundException;

import appBanco.basicas.exception.SaldoInsuficienteException;

import orb.interoperabilidade.PDU;
import orb.transporte.Buffer;
import orb.transporte.TCPAddress;
import orb.transporte.TCPTransport;
import util.Constantes;


public class Skeleton {
		private PDU pdu;
		private Servidor server;
		
	public void init() throws FileNotFoundException, SaldoInsuficienteException {
		this.pdu = new PDU();
		this.server = new Servidor();
		
		Object[] retorno = pdu.recieve();
		String operacao = (String) retorno[0];
		
		if(operacao.equals(Constantes.creditar)){
			String numConta = (String) retorno[1];
			String valorTxt = (String) retorno[2];
			double valor = Double.parseDouble(valorTxt);
			
			String resposta = this.server.creditar(numConta, valor);

			
			//ENVIO DA MENSAGEM RESPOSTA
			this.pdu.setTipoMensagem(Constantes.response);
			Object[] param = new Object[2];
			param[0] = resposta.length();
			param[1] = resposta;
			this.pdu.setParametros(param);
			this.pdu.send();
			
		}else if(operacao.equals(Constantes.debitar)){
			String numConta = (String) retorno[1];
			String valorTxt = (String) retorno[2];
			double valor = Double.parseDouble(valorTxt);
			
			String resposta = this.server.debitar(numConta, valor);
			
			
			//ENVIO DA MENSAGEM RESPOSTA
			this.pdu.setTipoMensagem(Constantes.response);
			Object[] param = new Object[2];
			param[0] = resposta.length();
			param[1] = resposta;
			this.pdu.setParametros(param);
			
			this.pdu.send();
			
		}else if(operacao.equals(Constantes.transferir)){
			String numContaOrigem = (String) retorno[1];
			String numContaDestino = (String) retorno[2];
			String valorTxt = (String) retorno[3];
			double valor = Double.parseDouble(valorTxt);
			
			String resposta = this.server.transferir(numContaOrigem, numContaDestino, valor);
			
			
			//ENVIO DA MENSAGEM RESPOSTA
			this.pdu.setTipoMensagem(Constantes.response);
			Object[] param = new Object[2];
			param[0] = resposta.length();
			param[1] = resposta;
			this.pdu.setParametros(param);
			this.pdu.send();
			
		}
	}

}
